package utils

type TokenDto struct {
	Token string `json:"token" label:"token"`
}

type GetDataLimitDto struct {
	PageNum  int `json:"page_num"`
	PageSize int `json:"page_size"`
}

type GetDataLimitResponseDto struct {
	Total        int64 `json:"total"`
	Page         int   `json:"page"`
	NextPage     int   `json:"next_page"`
	PreviousPage int   `json:"previous_page"`
	Data         any   `json:"data"`
}

func (dto *GetDataLimitResponseDto) Init(limitDto GetDataLimitDto, count int64, data any) {
	dto.Data = data
	dto.Total = count
	dto.Page = limitDto.PageNum
	if limitDto.PageNum <= 1 {
		dto.PreviousPage = -1
	} else {
		dto.PreviousPage = limitDto.PageNum - 1
	}
	if int64(limitDto.PageNum*limitDto.PageSize) >= count {
		dto.NextPage = -1
	} else {
		dto.NextPage = limitDto.PageNum + 1
	}
}

func (dto *GetDataLimitDto) Init() {
	if dto.PageSize == 0 {
		dto.PageSize = 10
	}
	if dto.PageNum == 0 {
		dto.PageNum = 1
	}
}
